import java.awt.*;
import java.awt.geom.*;
/**
 * Clase del elemento gráfico del gancho, hereda de Gancho e implementa la
 * interfaz Drawable.
 * @version 2
 */
class GFixedHook extends FixedHook implements Drawable {
   private float width;
   private Color color = Color.GREEN;
   private Rectangle2D.Float shape = null;
   /**
    * Constructor del objeto gancho
    * @param pos vector de posición del gancho.
    * @param w ancho de la representación del gancho.
    */
   public GFixedHook (Vector2D pos, float w) {
      super(pos);
      width = w;
      shape = new Rectangle2D.Float((float)pos.getX()-w/2, (float)pos.getY()-w/2,w,w);
   }
   /**
    * Funcion que dibuja el gancho
    * @param g lienzo gráfico en 2 dimensiones para dibujar.
    */
   public void draw (Graphics2D g){
      shape.setFrame((float)getX()-width/2, (float)getY()-width/2, width, width);
      g.setColor(color);
      g.fill(shape);
   }
   /**
    * Función para consultar si el punto está dentro del dibujo del gancho.
    * @param x coordenada X.
    * @param y coordenada Y.
    * @return estado si está o no incluido.
    */
   public boolean contains (int x, int y){
      return shape.contains(x,y);
   }
   /**
    * Función que fija la posición del gancho.
    * @param x coordenada X.
    * @param y coordenada Y.
    */
   public void dragTo(int x, int y){
      setPosition(x,y);
   }
   /**
    * Función que cambia el color a rojo.
    */
   public void setSelected(){
      color = Color.RED;
   }
   /**
    * Función que cambia el color a azul.
    */
   public void setReleased() {
      color = Color.GREEN;
   }
}